package com.example.hxds.odr.db.dao;


import com.example.hxds.odr.db.pojo.OrderEntity;

import javax.validation.constraints.Negative;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public interface OrderDao {
    //查询当天代驾总时长、总收入和订单数。
    public HashMap searchDriverTodayBusinessData(long driverId);

    //查询当月订单金额、订单数。
    public HashMap searchDriverYearBusinessMonth(long driverId);

    //创建订单信息
    public int insert(OrderEntity entity);

    //根据UUID查询出订单id
    public String searchOrderIdByUUID(String uuid);

    //更新订单记录中的driver_id、accept_time和status字段
    public int acceptNewOrder(Map param);

    //查询到某司机正在执行的订单
    public HashMap searchDriverExecuteOrder(Map param);

    //查询订单状态
    public Integer searchOrderStatus(Map param);

    //删除订单
    public int deleteUnAcceptOrder(Map param);

    //根据司机ID 查询订单信息
    public HashMap searchDriverCurrentOrder(long driverId);

    //根据客户Id查询订单ID（有司机接单的订单）
    public Long hasCustomerUnFinishedOrder(long customerId);

    //根据客户Id查询订单信息（没有司机接单的订单）
    public HashMap hasCustomerUnAcceptOrder(long customerId);

    //根据司机Id或 乘客Id 查询订单信息(包含起始位置 和 终点位置)
    public HashMap searchOrderForMoveById(Map param);

    //根据司机Id或 乘客Id 查询订单信息(包含起始位置 和 终点位置)
    public int updateOrderStatus(Map param);

    //根据条件查询订单数量
    public long searchOrderCount(Map param);

    //根据条件查询 订单分页数据
    public ArrayList<HashMap> searchOrderByPage(Map param);

    //根据订单号查询订单信息
    public HashMap searchOrderContent(long orderId);

    //查询最近30天代驾上车点的坐标
    ArrayList<String> searchOrderStartLocationIn30Days();

    //根据订单ID 修改 对应账单信息
    public int updateOrderMileageAndFee(Map param);

    //根据订单id 和司机ID 查询 订单数量
    public long validDriverOwnOrder(Map param);

    //根据订单iD 查询 订单开始的时间结束的时间
    public HashMap searchSettlementNeedData(long orderId);

    //根据订单Id 查询订单信息
    public HashMap searchOrderById(Map param);

    //查询订单是否可以进行支付
    public HashMap validCanPayOrder(Map param);

    //更新支付订单号 到 订单表中
    public int updateOrderPrepayId(Map param);

    public HashMap searchOrderIdAndStatus(String uuid);

    public HashMap searchDriverIdAndIncentiveFee(String uuid);

    public int updateOrderPayIdAndStatus(Map param);

    public int finishOrder(String uuid);

    public HashMap searchUuidAndStatus(long orderId);

    public int updateOrderAboutPayment(Map param);

    //查询订单是否存在
    public long validDriverAndCustomerOwnOrder(Map param);

    public ArrayList<HashMap> searchDriverOrderByPage(Map param);

    public long searchDriverOrderCount(Map param);

    public ArrayList<HashMap> searchCustomerOrderByPage(Map param);

    public long searchCustomerOrderCount(Map param);
}




